package org.ailuoli.guard.domain.enums;


import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * @author sander
 * @date 2025/02/03
 **/
@Getter
@RequiredArgsConstructor
public enum PlatformTypeEnum {

    /**
     * 异常(未知状态)
     */
    ERROR(-1),

    /**
     * 默认状态
     */
    DEFAULT(0),

    /**
     * 网络销售类平台
     * <p>
     * 这类平台主要连接人与商品，提供销售服务、促成双方交易、提高匹配效率等功能。子平台包括综合商品交易类、垂直商品交易类、商超团购类等。
     */
    NETWORK_SALES(1),

    /**
     * 生活服务类平台
     * <p>
     * 这类平台连接人与服务，提供出行旅游、配送、家政、租房买房、子女教育等服务。子平台包括出行服务类、旅游服务类、配送服务类、家政服务类、房屋经纪类等。
     */
    LIFE_SERVICE(2),

    /**
     * 社交娱乐类平台
     * <p>
     * 这类平台连接人与人，提供社交互动、游戏休闲、视听服务、文学阅读等功能。子平台包括即时通讯类、游戏休闲类、视听服务类、直播视频类、短视频类、文学类等。
     */
    SOCIAL_ENTERTAINMENT(3),

    /**
     * 信息资讯类平台
     * <p>
     * 这类平台连接人与信息，提供新闻资讯、搜索服务、音视频资讯内容等。子平台包括新闻门户类、搜索引擎类、用户内容生成(UGC)类、视听资讯类、新闻机构类等。
     */
    INFORMATION(4),

    /**
     * 金融服务类平台
     * <p>
     * 这类平台连接人与资金，提供支付结算、网络贷款服务、金融理财服务、证券投资服务等。子平台包括综合金融服务类、支付结算类、消费金融类、金融资讯类、证券投资类等。
     */
    FINANCIAL_SERVICES(5),

    /**
     * 计算应用类平台
     * <p>
     * 这类平台连接人与计算能力，提供应用在手机上、操作系统上，进行信息管理和云计算等服务。子平台包括各种应用服务平台。
     */
    COMPUTING_APPLICATION(6);

    private final int value;

    public boolean equals(Integer value) {
        return value != null && this.value == value;
    }

    public PlatformTypeEnum of(int value) {
        for (PlatformTypeEnum platformTypeEnum : PlatformTypeEnum.values()) {
            if (platformTypeEnum.value() == value) {
                return platformTypeEnum;
            }
        }
        return ERROR;
    }

    public int value() {
        return value;
    }

}
